package com.xinqi.modules.course.clazz.convert;

import com.xinqi.common.mapstruct.CommonConvertConfig;
import com.xinqi.modules.course.clazz.domain.ClassGroupStudentEntity;
import com.xinqi.modules.course.clazz.dto.req.ClassGroupStudentCreateDTO;
import com.xinqi.modules.course.clazz.dto.req.ClassGroupStudentDeleteDTO;
import com.xinqi.modules.course.clazz.dto.req.ClassGroupStudentQueryDTO;
import com.xinqi.modules.course.clazz.dto.req.ClassGroupStudentUpdateDTO;
import com.xinqi.modules.course.clazz.dto.rsp.ClassGroupStudentResultDTO;
import com.xinqi.modules.course.clazz.dto.rsp.ClassStudentResultDTO;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;

/**
 * 班级分组人员表转换
 *
 * @author: system
 * @date: 2023/01/17
 */
@Mapper(config = CommonConvertConfig.class)
public abstract class ClassGroupStudentConvert {
    public abstract ClassGroupStudentEntity create(ClassGroupStudentCreateDTO s);

    public abstract ClassGroupStudentEntity update(ClassGroupStudentUpdateDTO s, @MappingTarget ClassGroupStudentEntity t);

    public abstract ClassGroupStudentEntity update(ClassGroupStudentUpdateDTO s);

    public abstract ClassGroupStudentResultDTO convert(ClassGroupStudentEntity s);

    public abstract ClassGroupStudentCreateDTO create(ClassStudentResultDTO s, Long groupId);

    public abstract ClassGroupStudentQueryDTO convert(ClassGroupStudentCreateDTO s);

    public abstract ClassGroupStudentDeleteDTO delete(ClassGroupStudentEntity s);

    public abstract ClassGroupStudentQueryDTO convertTo(Long groupId);

    public abstract ClassGroupStudentDeleteDTO convertDel(ClassGroupStudentResultDTO s);

    public abstract ClassGroupStudentDeleteDTO convertDel(ClassGroupStudentEntity s);
}
